/**
 * <copyright>
 * </copyright>
 *
 * $Id$
 */
package EA_Model.IEC61970.Meas;

import EA_Model.IEC61970.SCADA.Source;

import org.eclipse.emf.ecore.EObject;

/**
 * <!-- begin-user-doc -->
 * A representation of the model object '<em><b>Quality61850</b></em>'.
 * <!-- end-user-doc -->
 *
 * <p>
 * The following features are supported:
 * <ul>
 *   <li>{@link EA_Model.IEC61970.Meas.Quality61850#getBadReference <em>Bad Reference</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Meas.Quality61850#getEstimatorReplaced <em>Estimator Replaced</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Meas.Quality61850#getFailure <em>Failure</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Meas.Quality61850#getOldData <em>Old Data</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Meas.Quality61850#getOperatorBlocked <em>Operator Blocked</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Meas.Quality61850#getOscillatory <em>Oscillatory</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Meas.Quality61850#getOutOfRange <em>Out Of Range</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Meas.Quality61850#getOverFlow <em>Over Flow</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Meas.Quality61850#getSource <em>Source</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Meas.Quality61850#getSuspect <em>Suspect</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Meas.Quality61850#getTest <em>Test</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Meas.Quality61850#getValidity <em>Validity</em>}</li>
 * </ul>
 * </p>
 *
 * @see EA_Model.IEC61970.Meas.MeasPackage#getQuality61850()
 * @model
 * @generated
 */
public interface Quality61850 extends EObject {
	/**
	 * Returns the value of the '<em><b>Bad Reference</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Bad Reference</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Bad Reference</em>' reference.
	 * @see #setBadReference(EA_Model.IEC61970.Domain.Boolean)
	 * @see EA_Model.IEC61970.Meas.MeasPackage#getQuality61850_BadReference()
	 * @model ordered="false"
	 * @generated
	 */
	EA_Model.IEC61970.Domain.Boolean getBadReference();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Meas.Quality61850#getBadReference <em>Bad Reference</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Bad Reference</em>' reference.
	 * @see #getBadReference()
	 * @generated
	 */
	void setBadReference(EA_Model.IEC61970.Domain.Boolean value);

	/**
	 * Returns the value of the '<em><b>Estimator Replaced</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Estimator Replaced</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Estimator Replaced</em>' reference.
	 * @see #setEstimatorReplaced(EA_Model.IEC61970.Domain.Boolean)
	 * @see EA_Model.IEC61970.Meas.MeasPackage#getQuality61850_EstimatorReplaced()
	 * @model ordered="false"
	 * @generated
	 */
	EA_Model.IEC61970.Domain.Boolean getEstimatorReplaced();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Meas.Quality61850#getEstimatorReplaced <em>Estimator Replaced</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Estimator Replaced</em>' reference.
	 * @see #getEstimatorReplaced()
	 * @generated
	 */
	void setEstimatorReplaced(EA_Model.IEC61970.Domain.Boolean value);

	/**
	 * Returns the value of the '<em><b>Failure</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Failure</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Failure</em>' reference.
	 * @see #setFailure(EA_Model.IEC61970.Domain.Boolean)
	 * @see EA_Model.IEC61970.Meas.MeasPackage#getQuality61850_Failure()
	 * @model ordered="false"
	 * @generated
	 */
	EA_Model.IEC61970.Domain.Boolean getFailure();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Meas.Quality61850#getFailure <em>Failure</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Failure</em>' reference.
	 * @see #getFailure()
	 * @generated
	 */
	void setFailure(EA_Model.IEC61970.Domain.Boolean value);

	/**
	 * Returns the value of the '<em><b>Old Data</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Old Data</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Old Data</em>' reference.
	 * @see #setOldData(EA_Model.IEC61970.Domain.Boolean)
	 * @see EA_Model.IEC61970.Meas.MeasPackage#getQuality61850_OldData()
	 * @model ordered="false"
	 * @generated
	 */
	EA_Model.IEC61970.Domain.Boolean getOldData();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Meas.Quality61850#getOldData <em>Old Data</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Old Data</em>' reference.
	 * @see #getOldData()
	 * @generated
	 */
	void setOldData(EA_Model.IEC61970.Domain.Boolean value);

	/**
	 * Returns the value of the '<em><b>Operator Blocked</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Operator Blocked</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Operator Blocked</em>' reference.
	 * @see #setOperatorBlocked(EA_Model.IEC61970.Domain.Boolean)
	 * @see EA_Model.IEC61970.Meas.MeasPackage#getQuality61850_OperatorBlocked()
	 * @model ordered="false"
	 * @generated
	 */
	EA_Model.IEC61970.Domain.Boolean getOperatorBlocked();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Meas.Quality61850#getOperatorBlocked <em>Operator Blocked</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Operator Blocked</em>' reference.
	 * @see #getOperatorBlocked()
	 * @generated
	 */
	void setOperatorBlocked(EA_Model.IEC61970.Domain.Boolean value);

	/**
	 * Returns the value of the '<em><b>Oscillatory</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Oscillatory</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Oscillatory</em>' reference.
	 * @see #setOscillatory(EA_Model.IEC61970.Domain.Boolean)
	 * @see EA_Model.IEC61970.Meas.MeasPackage#getQuality61850_Oscillatory()
	 * @model ordered="false"
	 * @generated
	 */
	EA_Model.IEC61970.Domain.Boolean getOscillatory();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Meas.Quality61850#getOscillatory <em>Oscillatory</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Oscillatory</em>' reference.
	 * @see #getOscillatory()
	 * @generated
	 */
	void setOscillatory(EA_Model.IEC61970.Domain.Boolean value);

	/**
	 * Returns the value of the '<em><b>Out Of Range</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Out Of Range</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Out Of Range</em>' reference.
	 * @see #setOutOfRange(EA_Model.IEC61970.Domain.Boolean)
	 * @see EA_Model.IEC61970.Meas.MeasPackage#getQuality61850_OutOfRange()
	 * @model ordered="false"
	 * @generated
	 */
	EA_Model.IEC61970.Domain.Boolean getOutOfRange();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Meas.Quality61850#getOutOfRange <em>Out Of Range</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Out Of Range</em>' reference.
	 * @see #getOutOfRange()
	 * @generated
	 */
	void setOutOfRange(EA_Model.IEC61970.Domain.Boolean value);

	/**
	 * Returns the value of the '<em><b>Over Flow</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Over Flow</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Over Flow</em>' reference.
	 * @see #setOverFlow(EA_Model.IEC61970.Domain.Boolean)
	 * @see EA_Model.IEC61970.Meas.MeasPackage#getQuality61850_OverFlow()
	 * @model ordered="false"
	 * @generated
	 */
	EA_Model.IEC61970.Domain.Boolean getOverFlow();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Meas.Quality61850#getOverFlow <em>Over Flow</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Over Flow</em>' reference.
	 * @see #getOverFlow()
	 * @generated
	 */
	void setOverFlow(EA_Model.IEC61970.Domain.Boolean value);

	/**
	 * Returns the value of the '<em><b>Source</b></em>' attribute.
	 * The literals are from the enumeration {@link EA_Model.IEC61970.SCADA.Source}.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Source</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Source</em>' attribute.
	 * @see EA_Model.IEC61970.SCADA.Source
	 * @see #setSource(Source)
	 * @see EA_Model.IEC61970.Meas.MeasPackage#getQuality61850_Source()
	 * @model ordered="false"
	 * @generated
	 */
	Source getSource();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Meas.Quality61850#getSource <em>Source</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Source</em>' attribute.
	 * @see EA_Model.IEC61970.SCADA.Source
	 * @see #getSource()
	 * @generated
	 */
	void setSource(Source value);

	/**
	 * Returns the value of the '<em><b>Suspect</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Suspect</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Suspect</em>' reference.
	 * @see #setSuspect(EA_Model.IEC61970.Domain.Boolean)
	 * @see EA_Model.IEC61970.Meas.MeasPackage#getQuality61850_Suspect()
	 * @model ordered="false"
	 * @generated
	 */
	EA_Model.IEC61970.Domain.Boolean getSuspect();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Meas.Quality61850#getSuspect <em>Suspect</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Suspect</em>' reference.
	 * @see #getSuspect()
	 * @generated
	 */
	void setSuspect(EA_Model.IEC61970.Domain.Boolean value);

	/**
	 * Returns the value of the '<em><b>Test</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Test</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Test</em>' reference.
	 * @see #setTest(EA_Model.IEC61970.Domain.Boolean)
	 * @see EA_Model.IEC61970.Meas.MeasPackage#getQuality61850_Test()
	 * @model ordered="false"
	 * @generated
	 */
	EA_Model.IEC61970.Domain.Boolean getTest();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Meas.Quality61850#getTest <em>Test</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Test</em>' reference.
	 * @see #getTest()
	 * @generated
	 */
	void setTest(EA_Model.IEC61970.Domain.Boolean value);

	/**
	 * Returns the value of the '<em><b>Validity</b></em>' attribute.
	 * The literals are from the enumeration {@link EA_Model.IEC61970.Meas.Validity}.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Validity</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Validity</em>' attribute.
	 * @see EA_Model.IEC61970.Meas.Validity
	 * @see #setValidity(Validity)
	 * @see EA_Model.IEC61970.Meas.MeasPackage#getQuality61850_Validity()
	 * @model ordered="false"
	 * @generated
	 */
	Validity getValidity();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Meas.Quality61850#getValidity <em>Validity</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Validity</em>' attribute.
	 * @see EA_Model.IEC61970.Meas.Validity
	 * @see #getValidity()
	 * @generated
	 */
	void setValidity(Validity value);

} // Quality61850
